// 演示数据

// DSL生成示例
const dslExamples = {
    json: {
        description: "创建一个电商订单的JSON结构，包含订单ID、用户信息、商品列表、总金额、订单状态和创建时间",
        examples: [
            '{"orderId": "12345", "userId": "user001"}',
            '{"items": [{"productId": "p001", "quantity": 2}]}'
        ],
        context: {
            "domain": "电商",
            "version": "v1.0"
        }
    },
    sql: {
        description: "创建一个用户表，包含用户ID、用户名、邮箱、密码、创建时间和更新时间，用户ID为主键，邮箱唯一",
        examples: [
            "CREATE TABLE users (id INT PRIMARY KEY)",
            "ALTER TABLE users ADD UNIQUE INDEX (email)"
        ],
        context: {
            "database": "MySQL",
            "charset": "utf8mb4"
        }
    },
    yaml: {
        description: "创建一个Kubernetes Deployment配置，部署一个Nginx应用，包含3个副本，使用nginx:1.20镜像，暴露80端口",
        examples: [
            "apiVersion: apps/v1",
            "kind: Deployment"
        ],
        context: {
            "platform": "Kubernetes",
            "namespace": "default"
        }
    }
};

// 业务规则示例
const businessRuleExamples = {
    required: {
        ruleName: "作业申请单位校验_必填",
        relatedField: "作业申请单位",
        ruleDescription: '为空提示：{"des": "作业申请单位未填写。", "result": "错误"}'
    },
    format: {
        ruleName: "动火作业数据校验_格式",
        relatedField: "动火作业数据",
        ruleDescription: 'not in 节点值：微气象 输出：{"des": "动火作业数据填写格式错误。", "result": "错误"}'
    },
    range: {
        ruleName: "作业申请时间校验_范围",
        relatedField: "作业申请时间",
        ruleDescription: '如果作业申请时间不为空且作业申请时间早于申请时间，输出{"des": "作业申请时间不能早于申请时间。", "result": "错误"}'
    },
    complex: {
        ruleName: "动火人员证书校验_正式状态",
        relatedField: "动火人员证书",
        ruleDescription: '当作业类型为动火作业，作业类型为正式状态时，如果动火人员证书为空，或者动火人员证书的值不在【正式】范围内，输出：{"des": "动火作业需要正式动火人员证书。", "result": "错误"}'
    }
};

// 批量业务规则示例
const batchBusinessRuleExample = {
    "rules": [
        {
            "ruleName": "作业申请单位校验_必填",
            "relatedField": "作业申请单位",
            "ruleDescription": '为空提示：{"des": "作业申请单位未填写。", "result": "错误"}'
        },
        {
            "ruleName": "作业申请时间校验_必填",
            "relatedField": "作业申请时间",
            "ruleDescription": '为空提示：{"des": "作业申请时间未填写。", "result": "错误"}'
        },
        {
            "ruleName": "作业申请时间校验_必填且不早于申请时间",
            "relatedField": "作业申请时间",
            "ruleDescription": '如果作业申请时间不为空且作业申请时间早于申请时间，输出{"des": "作业申请时间不能早于申请时间。", "result": "错误"}'
        },
        {
            "ruleName": "作业业务类型校验_必填",
            "relatedField": "作业业务类型",
            "ruleDescription": '为空提示：{"des": "作业业务类型未填写。", "result": "错误"}'
        },
        {
            "ruleName": "动火作业数据校验_格式",
            "relatedField": "动火作业数据",
            "ruleDescription": 'not in 节点值：微气象 输出：{"des": "动火作业数据填写格式错误。", "result": "错误"}'
        },
        {
            "ruleName": "动火作业数据校验_节点日",
            "relatedField": "动火作业数据",
            "ruleDescription": '如果动火作业数据为空，或者动火作业数据的值不在【微气象】范围内，输出：{"des": "动火作业数据填写格式错误。", "result": "错误"}'
        },
        {
            "ruleName": "动火作业数据校验_节点日范围",
            "relatedField": "动火作业数据",
            "ruleDescription": '如果动火作业数据为空，或者动火作业数据的值不在【微气象】范围内，输出：{"des": "动火作业数据填写格式错误。", "result": "错误"} 如果动火作业数据为空，或者动火作业数据的值不在【微气象】范围内，输出：{"des": "动火作业数据填写格式错误。", "result": "错误"}'
        },
        {
            "ruleName": "动火人员证书校验_正式状态",
            "relatedField": "动火人员证书",
            "ruleDescription": '当作业类型为动火作业，作业类型为正式状态时，如果动火人员证书为空，或者动火人员证书的值不在【正式】范围内，输出：{"des": "动火作业需要正式动火人员证书。", "result": "错误"}'
        },
        {
            "ruleName": "动火人员证书校验_正式状态",
            "relatedField": "动火人员证书",
            "ruleDescription": '当作业类型为动火作业，作业类型为正式状态时，如果动火人员证书为空，或者动火人员证书的值不在【正式】范围内，输出：{"des": "动火作业需要正式动火人员证书。", "result": "错误"} 如果动火人员证书为空，或者动火人员证书的值不在【正式】范围内，输出：{"des": "动火作业需要正式动火人员证书。", "result": "错误"}'
        },
        {
            "ruleName": "动火人员证书校验_正式状态",
            "relatedField": "动火人员证书",
            "ruleDescription": '当作业类型为动火作业，作业类型为正式状态时，如果动火人员证书为空，或者动火人员证书的值不在【正式】范围内，输出：{"des": "动火作业需要正式动火人员证书。", "result": "错误"} 如果动火人员证书为空，或者动火人员证书的值不在【正式】范围内，输出：{"des": "动火作业需要正式动火人员证书。", "result": "错误"} 如果动火人员证书为空，或者动火人员证书的值不在【正式】范围内，输出：{"des": "动火作业需要正式动火人员证书。", "result": "错误"}'
        }
    ]
};

// Excel格式的业务规则示例
const excelBusinessRuleExample = {
    "data": [
        {
            "ruleName": "作业申请单位校验_必填",
            "relatedField": "作业申请单位",
            "ruleDescription": '为空提示：{"des": "作业申请单位未填写。", "result": "错误"}'
        },
        {
            "ruleName": "作业申请时间校验_必填",
            "relatedField": "作业申请时间",
            "ruleDescription": '为空提示：{"des": "作业申请时间未填写。", "result": "错误"}'
        },
        {
            "ruleName": "作业业务类型校验_必填",
            "relatedField": "作业业务类型",
            "ruleDescription": '为空提示：{"des": "作业业务类型未填写。", "result": "错误"}'
        },
        {
            "ruleName": "动火作业数据校验_格式",
            "relatedField": "动火作业数据",
            "ruleDescription": 'not in 节点值：微气象 输出：{"des": "动火作业数据填写格式错误。", "result": "错误"}'
        },
        {
            "ruleName": "动火作业数据校验_节点日",
            "relatedField": "动火作业数据",
            "ruleDescription": '如果动火作业数据为空，或者动火作业数据的值不在【微气象】范围内，输出：{"des": "动火作业数据填写格式错误。", "result": "错误"}'
        }
    ]
};

// 导出数据
if (typeof module !== 'undefined' && module.exports) {
    module.exports = {
        dslExamples,
        businessRuleExamples,
        batchBusinessRuleExample,
        excelBusinessRuleExample
    };
}
